Conventional wireless communication services, as well as Internet Protocol services, may include the feature of determining geographic locations of devices. Whether the device is mobile or fixed in their network attachments, they are collectively referred to as “target devices.” For example, one type of location based service is an E-911 emergency service responsive to “911” calls from target devices. Such emergency services may include estimating latitude and longitude of the target device, which is particularly important when a distressed caller is otherwise unable to provide their present position.
Locations of target devices may be determined by a location server, such as a location information server (LIS), operating in the corresponding network. A LIS may determine the location of a target device using positioning measurements from a global navigation satellite system (GNSS) provided by the target device, using terrestrial or network-oriented measurements (such as signal strength, arrival time, timing advance, wire map, etc.), or using a combination of techniques, for example. The location information may be retrieved from the LIS using network specific protocols, either directly or indirectly, e.g., through a location uniform resource identifier (URI) generated by the LIS. In IP networks, the LIS may determine the location of an IP terminal based on network topology, such as known locations of access points, for example. In a wired network, such as Ethernet or Digital Subscriber Line (DSL), a wiremap may be used for location determination based on tracing data through network access points to find the particular port to which the IP device is connected.
Generally, a location based service may be implemented by an application accessed over the Internet or other packet switching network, where the application requires “trustworthy” location information with respect to the target device. Conventional approaches to providing trustworthy location information over the Internet include “signing” the location information according to various methods that allow the location information to be attributed to a specific target device at a specific point in time. Currently, there is no standardization of such methods by the Internet community.
For example, a large enterprise, such as a university, government entity, corporation or the like, may provide a localized enterprise network, which is able to determine the location of target devices within the corresponding campus or facility to a relatively high degree of accuracy using an enterprise LIS. However, because it is an enterprise network, the location information provided by the LIS may not be inherently trusted by the Internet application requesting the location information. Conversely, a carrier may provide backhaul infrastructure to the enterprise over a carrier network, using a carrier LIS, which typically would be recognizable and trusted by the Internet application. However, the carrier network would be unable to provide location information indicating the position of the target device within the enterprise network, or would otherwise be unable to provide location information to the same degree of accuracy. For example, an enterprise network may be able to provide locations with reference to specific buildings located on a campus and/or floors within a building.
Location URIs may be created that do not require state to be maintained by the enterprise LIS and/or the carrier LIS, as described for example in U.S. patent application Ser. Nos. 12/891,965 and 12/891,971, filed Sep. 28, 2010, which are hereby incorporated by reference. Generally, the stateless location URI includes a compact representation of state data, necessary to serve a request to the location URI, enabling a LIS to retrieve necessary state from the location URI. Encryption may be used to protect the location information about the target device.
However, possession of a stateless location URI may immediately grant access to the location and other information about the target device, which is known as “authorization by possession.” This is typically undesirable, particularly where dissemination of the location URI is not or can not be controlled. An alternative authorization model, known as “authorization by access control,” has the LIS consult an authorization policy before serving requests to the location URI. Typically, requesters have to prove other facts, such as identity, before location information is granted to them. An authorization policy provides the ability to set conditions on the grant of location information. The location URI created by this process is served by the LIS using its own capabilities. The capabilities of the target device are often useful in gaining more accurate location. Use of device capabilities and how they are invoked can be negotiated prior to the creation of the location URI.
However, the authorization policy and device capabilities are additional state required to serve a request to the location URI. The size and complexity of authorization policies and device capabilities could exceed the space allowed for including information in the location URI itself, as well as for encrypting.
In a representative embodiment, a method provides a location of a target device to an application implementing a location based service. The method includes receiving a request for a location of the target device from the application at a location server, the request including a location reference including a user reference referring to user information corresponding to the target device and stored in at least one data source; retrieving the user information from the at least one data source using the user reference; determining the location of the target device based at least in part on the retrieved user information; and providing the determined location of the target device to the application.
In another representative embodiment, a system for providing a location of a target device to an application implementing a location based service includes a location server and a data source. The a location server is configured to receive a request for a location of the target device from the application, the request including a location reference including a user reference referring to user information corresponding to the target device. The data source is configured to store the user information. The location server retrieves the user information from the data source using the user reference, determines the location of the target device based at least in part on the retrieved user information, and provides the determined location of the target device to the application.
In another representative embodiment, a method provides a location of a target device. The method includes receiving a first location URI request from the target device at a first LIS and generating a first location URI in response to the first request, where the first location URI includes device identification information identifying the target device and a user reference referring to user information corresponding to the target device and stored in at least one data source. The first location URI is included in a second location URI request to a second LIS, the second LIS generating a stateless second location URI in response to the second request, the first location URI being embedded in the second location URI. The method further includes receiving the second location URI from the second LIS; providing the second location URI to the target device to be provided to an application requesting location information of the target device from the second LIS; receiving a query from the second LIS requesting the location of the target device, the query including the first location URI; identifying the target device using the device identification information in the first location URI; retrieving the user information from the at least one data source using the user reference in the first location URI; determining the location of the target device based at least in part on the retrieved user information; and providing the determined location of the target device to the second LIS, which provides the determined location to the application.